package cn.exrick.xboot.core.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * <p>
 * 
 * </p>
 *
 * @author yuhaifei
 * @since 2021-12-26
 */
@Data
@TableName("app_member")
@ApiModel(value = "")
public class AppMember implements Serializable {

        private static final long serialVersionUID = 1L;

        /**
         *
         */
        @JsonSerialize(using = ToStringSerializer.class)
        @TableField(value = "id")
        @ApiModelProperty(value = "")
        private Long id;

        /**
         *
         */
        @TableField(value = "create_by")
        @ApiModelProperty(value = "")
        private String createBy;

        /**
         *
         */
        @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        @TableField(value = "create_time")
        @ApiModelProperty(value = "")
        private Date createTime;

        /**
         *
         */
        @TableField(value = "del_flag")
        @ApiModelProperty(value = "")
        private Integer delFlag;

        /**
         *
         */
        @TableField(value = "update_by")
        @ApiModelProperty(value = "")
        private String updateBy;

        /**
         *
         */
        @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        @TableField(value = "update_time")
        @ApiModelProperty(value = "")
        private Date updateTime;

        /**
         *
         */
        @TableField(value = "avatar")
        @ApiModelProperty(value = "")
        private String avatar;

        /**
         *
         */
        @TableField(value = "email")
        @ApiModelProperty(value = "")
        private String email;

        /**
         *
         */
        @TableField(value = "mobile")
        @ApiModelProperty(value = "")
        private String mobile;

        /**
         *
         */
        @TableField(value = "nickname")
        @ApiModelProperty(value = "")
        private String nickname;

        /**
         *
         */
        @TableField(value = "password")
        @ApiModelProperty(value = "")
        private String password;

        /**
         *
         */
        @TableField(value = "platform")
        @ApiModelProperty(value = "")
        private Integer platform;

        /**
         *
         */
        @TableField(value = "sex")
        @ApiModelProperty(value = "")
        private String sex;

        /**
         *
         */
        @TableField(value = "status")
        @ApiModelProperty(value = "")
        private Integer status;

        /**
         *
         */
        @TableField(value = "type")
        @ApiModelProperty(value = "")
        private Integer type;

        /**
         *
         */
        @TableField(value = "username")
        @ApiModelProperty(value = "")
        private String username;

        /**
         *
         */
        @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        @TableField(value = "vip_end_time")
        @ApiModelProperty(value = "")
        private Date vipEndTime;

        /**
         *
         */
        @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        @TableField(value = "vip_start_time")
        @ApiModelProperty(value = "")
        private Date vipStartTime;

        /**
         *
         */
        @TableField(value = "permissions")
        @ApiModelProperty(value = "")
        private String permissions;

        /**
         *
         */
        @TableField(value = "vip_status")
        @ApiModelProperty(value = "")
        private Integer vipStatus;

        /**
         *
         */
        @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss")
        @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
        @TableField(value = "birth")
        @ApiModelProperty(value = "")
        private Date birth;

        /**
         *
         */
        @TableField(value = "address")
        @ApiModelProperty(value = "")
        private String address;

        /**
         *
         */
        @TableField(value = "invite_code")
        @ApiModelProperty(value = "")
        private String inviteCode;

        /**
         *
         */
        @TableField(value = "grade")
        @ApiModelProperty(value = "")
        private Integer grade;

        /**
         *
         */
        @TableField(value = "position")
        @ApiModelProperty(value = "")
        private String position;

        /**
         *
         */
        @TableField(value = "invite_by")
        @ApiModelProperty(value = "")
        private String inviteBy;

        /**
         *
         */
        @TableField(value = "description")
        @ApiModelProperty(value = "")
        private String description;

        /**
         *
         */
        @TableField(value = "open_id")
        @ApiModelProperty(value = "")
        private String openId;

}